<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <pre><code>const obj = { a: 1, b: 2 };
const proxy = new Proxy(obj, {
  get(target, key) {    
    console.log(&#39;get&#39;, key);
    return target[key];
  },
    set(target, key, value) {
        console.log(&#39;set&#39;, key, value);
        target[key] = value;
    }
});
</pre></code>
<!-- Proxy 对象的 get 和 set 方法会拦截对对象属性的访问和赋值操作。 -->
 let a = proxy.a; // 控制台输出: get a
 proxy.b = 3;    // 控制台输出: set b 3 
</body>
<script>
// const obj = { a: 1, b: 2 };
// const proxy = new Proxy(obj, {
//   get(target, key) {    
//     console.log('get', key);
//     return target[key];
//   },
//     set(target, key, value) {
//         console.log('set', key, value);
//         target[key] = value;
//     }
// });
//  let a = proxy.a; // 控制台输出: get a
//  proxy.b = 3;    // 控制台输出: set b 3
// console.log(obj.b); // 3
// const obj2 = {x:10,y:20}
// const proxy2 = new Proxy(obj2,{
//     get(target,key){
//         console.log('get',key);
//         return target[key]
//     },
//     set(target,key,value){
//         console.log('set',key,value);
//         target[key] = value
//     }
// })
// proxy2.x // get x
// proxy2.y = 30 // set y 30
// console.log(obj2.y); // 30

// let jsonArr = [
//   {name:'aaa',age:10},
//   {title:'bbb',desc:'hello proxy'}
// ]
// config.setParams = new Proxy(jsonArr,{
//   get(target,key){
//     set(target,key)
//   },
//   get(target,key){
//     set(target,key)
//   }
// })

// 正确的 Proxy 处理器
let mine = {
  get(target, key) {
    console.log(`Getting property ${key}`);
    return target[key]; // 应该返回属性值
  },
  set(target, key, value) {
    console.log(`Setting property ${key} to ${value}`);
    target[key] = value; // 应该设置属性值
    return true; // 表示设置成功
  }
};

// 使用示例
const mineObj = { name: "John" };
const proxy = new Proxy(mineObj, mine);

proxy.name; // 输出: Getting property name
proxy.age = 30; // 输出: Setting property age to 30

console.log('===> code.html:88 ~ proxy', proxy);
</script>
</html>